clock関数は、CPU使用時間の近似値を取得します。
#include <time.h>
clock_t clock(void);
引数はありません。
戻り値として、clock_t単位のCPU使用時間を返します。エラーの場合は、-1を返します。ただし、標準規格ではプログラムの開始時点では、どんな値が返ってきても構わないことになっていますので、移植性を確保するためには、プログラムの開始時にclock関数を呼び出してCPU使用時間を取得しておき、この値を差し引くことで、実際のCPU使用時間を求めた方がよいでしょう。
秒単位での使用時間はCLOCKS_PER_SECで割ることで算出できます。また、例えばCLOCKS_PER_SECが1000000である32ビットシステムでは、この関数は約72分毎に同じ値を返すことになります。
プログラム 例
#include <stdio.h> #include <time.h> #include <limits.h> int main() { int use_cpu; clock_t first_time; /* CPU使用時間を取得 */ first_time = clock(); /* CPUを使う */ for (use_cpu = 0; use_cpu < INT_MAX; ++use_cpu) ; printf('CPU使用時間:%.1f秒\n', (double)(clock() - first_time) / (double)CLOCKS_PER_SEC); return 0; }
例の実行結果
$ ./clock.exe CPU使用時間:4.9秒 $